home *** CD-ROM | disk | FTP | other *** search
- REM
- REM (MacDrawPat.BAS)
- REM
- REM CREATES A 'MACDRAW(PICT)' GRAPHICS-DEMO FILE
- REM
- WINDOW OFF
- COORDINATE WINDOW
- REM
- REM DEFINE 'SHORT' PICCOMMENTS
- REM
- NIL&=0
- noData%=0
- picDwgBeg%=130
- picDwgEnd%=131
- REM
- REM READ-IN ALL 36 'MACDRAW' FILL/PEN PATTERNS AS HEX STRINGS
- REM
- DIM MacDrawPat$(36)
- FOR I%=1 TO 36
- READ patID%,MacDrawPat$(I%)
- NEXT I%
- REM
- REM DEFINE PICTURE RECTANGLE (A FULL-SIZE 'MACDRAW' PAGE)
- REM
- picRect=0.
- picTop%=0
- picLeft%=0
- picBottom%=720
- picRight%=576
- REM
- REM 'INITIALIZE' QUICKDRAW RECTANGLE
- REM
- DIM qdRect,qdTop%,qdLeft%,qdBottom%,qdRight%
- REM
- REM 'INITIALIZE' QUICKDRAW 'FILL' PATTERN
- REM
- DIM fillPat,row12%,row34%,row56%,row78%
- fillPatPtr&=VARPTR(fillPat)
- REM
- REM 'INITIALIZE' PICTURE
- REM
- CALL SETRECT(picRect,picLeft%,picTop%,picRight%,picBottom%)
- REM
- REM * * * CREATE A GRAPHICS-DEMO FILE * * *
- REM
- PicHand&=FN OPENPICTURE(picRect)
- REM
- REM 'BEGIN' A 'MACDRAW' PICTURE
- REM
- CALL PICCOMMENT(picDwgBeg%,noData%,NIL&)
- REM
- REM TURN ON THE 'PEN' SO WE CAN SEE WHAT'S HAPPENING
- REM
- CALL SHOWPEN
- REM
- REM DRAW A 'SINGLE-WEIGHT' LINE
- REM
- CALL MOVETO(25,25)
- CALL LINETO(325,125)
- REM
- REM CREATE A 'FILLRECT' - NOTE: FILL & FRAME ARE 'GROUPED'
- REM
- qdTop%=25
- qdLeft%=50
- qdBottom%=125
- qdRight%=100
- CALL SETRECT(qdRect,qdLeft%,qdTop%,qdRight%,qdBottom%)
- CALL STUFFHEX(fillPatPtr&,MacDrawPat$(11))
- CALL FILLRECT(qdRect,fillPat)
- CALL FRAMERECT(qdRect)
- REM
- REM CREATE A 'FILLOVAL' - NOTE: FILL & FRAME ARE 'GROUPED'
- REM
- qdTop%=25
- qdLeft%=250
- qdBottom%=125
- qdRight%=300
- CALL SETRECT(qdRect,qdLeft%,qdTop%,qdRight%,qdBottom%)
- CALL STUFFHEX(fillPatPtr&,MacDrawPat$(34))
- CALL FILLOVAL(qdRect,fillPat)
- CALL FRAMEOVAL(qdRect)
- REM
- REM DRAW A 'DOUBLE-WEIGHT' LINE
- REM
- PEN 2,2,,,
- CALL MOVETO(25,125)
- CALL LINETO(325,25)
- CALL PENNORMAL
- REM
- REM CREATE A 'FILLROUNDRECT' - NOTE: FILL & FRAME ARE 'GROUPED'
- REM
- qdTop%=25
- qdLeft%=150
- qdBottom%=125
- qdRight%=200
- CALL SETRECT(qdRect,qdLeft%,qdTop%,qdRight%,qdBottom%)
- ovalWidth%=10
- ovalHeight%=10
- CALL STUFFHEX(fillPatPtr&,MacDrawPat$(30))
- CALL FILLROUNDRECT(qdRect,ovalWidth%,ovalHeight%,fillPat)
- CALL FRAMEROUNDRECT(qdRect,ovalWidth%,ovalHeight%)
- REM
- REM DRAW A 'SINGLE-WEIGHT' LINE
- REM
- CALL MOVETO(25,150)
- CALL LINETO(325,250)
- REM
- REM CREATE A 'PAINTRECT' - NOTE: PAINT & FRAME ARE NOT! 'GROUPED'
- REM
- qdTop%=150
- qdLeft%=50
- qdBottom%=250
- qdRight%=100
- CALL SETRECT(qdRect,qdLeft%,qdTop%,qdRight%,qdBottom%)
- PEN ,,,,11
- CALL PAINTRECT(qdRect)
- CALL PENNORMAL
- CALL FRAMERECT(qdRect)
- REM
- REM CREATE A 'PAINTOVAL' - NOTE: PAINT & FRAME ARE NOT! 'GROUPED'
- REM
- qdTop%=150
- qdLeft%=250
- qdBottom%=250
- qdRight%=300
- CALL SETRECT(qdRect,qdLeft%,qdTop%,qdRight%,qdBottom%)
- PEN 2,2,,,37
- CALL PAINTOVAL(qdRect)
- CALL PENNORMAL
- CALL FRAMEOVAL(qdRect)
- REM
- REM DRAW A 'DOUBLE-WEIGHT' LINE
- REM
- PEN 2,2,,,
- CALL MOVETO(25,250)
- CALL LINETO(325,150)
- CALL PENNORMAL
- REM
- REM CREATE A 'PAINTROUNDRECT' - NOTE: PAINT & FRAME ARE NOT! 'GROUPED'
- REM
- qdTop%=150
- qdLeft%=150
- qdBottom%=250
- qdRight%=200
- CALL SETRECT(qdRect,qdLeft%,qdTop%,qdRight%,qdBottom%)
- ovalWidth%=10
- ovalHeight%=10
- PEN ,,,,32
- CALL PAINTROUNDRECT(qdRect,ovalWidth%,ovalHeight%)
- CALL PENNORMAL
- CALL FRAMEROUNDRECT(qdRect,ovalWidth%,ovalHeight%)
- REM
- REM RESET THE 'PEN', DUE TO THE 'SHOWPEN' CALL
- REM
- CALL HIDEPEN
- REM
- REM 'END' A 'MACDRAW' PICTURE
- REM
- "EndPicture"
- CALL PICCOMMENT(picDwgEnd%,noData%,NIL&)
- REM
- REM CREATE THE 'MACDRAW' PICT FILE
- REM
- DEF OPEN "PICTMDRW"
- OPEN "O",#1,"MacDraw.demo"
- REM
- REM WRITE-OUT A 512 BYTE (256 WORDS OR INTEGERS) HEADER OF ZEROES
- REM
- A%=0
- FOR I%=1 TO 256
- WRITE #1,A%
- NEXT I%
- REM
- REM CLOSE THE PICTURE & WRITE-OUT THE 'PICT' DATA
- REM
- CALL CLOSEPICTURE
- PicPtr&=PEEK LONG(PicHand&)
- PicLength%=PEEK WORD(PicPtr&+0)
- NumWords%=PicLength%/2
- doubleNumWords%=2*NumWords%
- IF doubleNumWords%<PicLength% THEN NumWords%=NumWords%+1
- FOR I%=1 TO NumWords%
- J%=2*(I%-1)
- A%=PEEK WORD(PicPtr&+J%)
- WRITE #1,A%
- NEXT I%
- CALL KILLPICTURE(PicHand&)
- REM
- REM * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
- REM
- REM DATA FOR ALL 36 'MACDRAW' FILL/PEN PATTERNS AS HEX STRINGS
- REM
- DATA 1,"0000000000000000"
- DATA 2,"0000000000000000"
- DATA 3,"FFFFFFFFFFFFFFFF"
- DATA 4,"77DD77DD77DD77DD"
- DATA 5,"AA55AA55AA55AA55"
- DATA 6,"8822882288228822"
- DATA 7,"8800220088002200"
- DATA 8,"8000080080000800"
- DATA 9,"8000000008000000"
- DATA 10,"8080413E080814E3"
- DATA 11,"FF808080FF080808"
- DATA 12,"8142241881422418"
- DATA 13,"8040201008040201"
- DATA 14,"E070381C0E0783C1"
- DATA 15,"77BBDDEE77BBDDEE"
- DATA 16,"8844221188442211"
- DATA 17,"99CC663399CC6633"
- DATA 18,"2040800008040200"
- DATA 19,"FF00FF00FF00FF00"
- DATA 20,"FF000000FF000000"
- DATA 21,"CC00000033000000"
- DATA 22,"F0F0F0F00F0F0F0F"
- DATA 23,"FF888888FF888888"
- DATA 24,"AA44AA11AA44AA11"
- DATA 25,"0102040810204080"
- DATA 26,"83070E1C3870E0C1"
- DATA 27,"EEDDBB77EEDDBB77"
- DATA 28,"1122448811224488"
- DATA 29,"3366CC993366CC99"
- DATA 30,"40A00000040A0000"
- DATA 31,"AAAAAAAAAAAAAAAA"
- DATA 32,"8888888888888888"
- DATA 33,"0101101001011010"
- DATA 34,"0008142A552A1408"
- DATA 35,"FF80808080808080"
- DATA 36,"8244281028448201"
- END
-